/**********************************************************************************************/
// dgt_BoolVariable.h
//
// Common Lib for Digital Studio
// Block of management of bool functions
// Class of elementary boolean variable
//
// Copyright Diamant Group 2009
/**********************************************************************************************/

#ifndef _DGT_BOOLVARIABLE_H_
#define _DGT_BOOLVARIABLE_H_

#include "dgtKernel.h"
#include "dgt_SmartMacros.h"


SMART_CLASS( dgt_BoolVariable );

/**********************************************************************************************/
WX_DECLARE_OBJARRAY( dgt_BoolVariable, BoolVarArray );

/**********************************************************************************************/
/**
* \class for representation boolean variable
*/
class dgt_BoolVariable
{
	public://///////////////////////////////////////////////////////////////////////////////////

		/**
		* @brief Ctor as default
		*/
								dgt_BoolVariable();	

		/**
		* @brief Ctor with params
		* @param inAlias Alias of the new variable
		*/
								dgt_BoolVariable( wxString inAlias );

		/**
		* @brief Dtor as default
		*/
virtual							~dgt_BoolVariable()					{};

	public://///////////////////////////////////////////////////////////////////////////////////

		/**
		* @brief Function for getting alias of variable
		* @return variable alias
		*/
		wxString				get_Alias( void )					{ return m_Alias; }

		/**
		* @brief Function for setting alias of variable
		* @param inAlias new alias of variable
		*/
		void					set_Alias( wxString inAlias )		{ m_Alias = inAlias; }

		/**
		* @brief Function for getting UID of variable
		* @return variable UID
		*/
		long					get_UID( void )						{ return m_UID; }

		/**
		* @brief Operator == for class dgt_BoolVariable
		*/
		bool					operator==( dgt_BoolVariable_Ptr inVar );

		/**
		* @brief Operator != for class dgt_BoolVariable
		*/
		bool					operator!=( dgt_BoolVariable_Ptr inVar );

	private:////////////////////////////////////////////////////////////////////////////////////

		/**
		* @brief Function for generation UID
		* @return UID
		*/
		long					generateUID( void );


	private:////////////////////////////////////////////////////////////////////////////////////

		/** @brief Unique ID of variable 
		*/
		long					m_UID;

		/** @brief Alias of variable
		*/
		wxString				m_Alias;
		
	
};

#endif //_DGT_BOOLVARIABLE_H_